package com.house.core.db;

import java.sql.SQLException;

/**
 * 
 * @author SunChong
 */
public interface DBManager {
	/**
	 * 从数据库中查询数据
	 * @param op 只能是Opuniq类型
	 * @return 只返回结果集中第一条
	 */
	Object queryUniq(OpQueryUniq op) throws SQLException;
	
	/**
	 * 从数据库中查询数据
	 * @param op 只能是OpQueryList类型
	 * @return 返回结果集中所有数据
	 */
	Object queryList(OpQueryList op) throws SQLException;
	
	/**
	 * 判断结果集是否为空
	 * @param op
	 * @return
	 */
	boolean queryExist(OpQueryUniq op) throws SQLException;
	
	/**
	 * 插入、更新数据库时使用
	 * @param op 只能是OpUpdate类型
	 * @return 返回所影响行数
	 */
	int update(OpUpdate op) throws SQLException;
	
	/**
	 * 插入数据
	 * @param op 只能是OpUpdate类型
	 * @return 返回插入这条数据的id，适用于数据库中的int型id
	 */
	int insertReturnIntId(OpUpdate op) throws SQLException;
	
	/**
	 * 插入数据
	 * @param op 只能是OpUpdate类型
	 * @return 返回插入这条数据的id，适用于数据库中的long型id
	 */
	long insertReturnLongId(OpUpdate op) throws SQLException;
}
